/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ccore;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see ccore.CcoreFactory
 * @model kind="package"
 * @generated
 */
public interface CcorePackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "ccore";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://ccore";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "ccore";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	CcorePackage eINSTANCE = ccore.impl.CcorePackageImpl.init();

	/**
	 * The meta object id for the '{@link ccore.impl.CCoreImpl <em>CCore</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ccore.impl.CCoreImpl
	 * @see ccore.impl.CcorePackageImpl#getCCore()
	 * @generated
	 */
	int CCORE = 0;

	/**
	 * The feature id for the '<em><b>CClasses</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__CCLASSES = 0;

	/**
	 * The feature id for the '<em><b>CConstraints</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__CCONSTRAINTS = 1;

	/**
	 * The feature id for the '<em><b>CObjects</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__COBJECTS = 2;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__NAME = 3;

	/**
	 * The feature id for the '<em><b>Infinite</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__INFINITE = 4;

	/**
	 * The feature id for the '<em><b>Problem</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__PROBLEM = 5;

	/**
	 * The feature id for the '<em><b>Generated Constraints</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE__GENERATED_CONSTRAINTS = 6;

	/**
	 * The number of structural features of the '<em>CCore</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CCORE_FEATURE_COUNT = 7;


	/**
	 * The meta object id for the '<em>Problem</em>' data type.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see choco.Problem
	 * @see ccore.impl.CcorePackageImpl#getProblem()
	 * @generated
	 */
	int PROBLEM = 1;


	/**
	 * Returns the meta object for class '{@link ccore.CCore <em>CCore</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>CCore</em>'.
	 * @see ccore.CCore
	 * @generated
	 */
	EClass getCCore();

	/**
	 * Returns the meta object for the containment reference list '{@link ccore.CCore#getCClasses <em>CClasses</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>CClasses</em>'.
	 * @see ccore.CCore#getCClasses()
	 * @see #getCCore()
	 * @generated
	 */
	EReference getCCore_CClasses();

	/**
	 * Returns the meta object for the containment reference list '{@link ccore.CCore#getCConstraints <em>CConstraints</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>CConstraints</em>'.
	 * @see ccore.CCore#getCConstraints()
	 * @see #getCCore()
	 * @generated
	 */
	EReference getCCore_CConstraints();

	/**
	 * Returns the meta object for the containment reference list '{@link ccore.CCore#getCObjects <em>CObjects</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>CObjects</em>'.
	 * @see ccore.CCore#getCObjects()
	 * @see #getCCore()
	 * @generated
	 */
	EReference getCCore_CObjects();

	/**
	 * Returns the meta object for the attribute '{@link ccore.CCore#getInfinite <em>Infinite</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Infinite</em>'.
	 * @see ccore.CCore#getInfinite()
	 * @see #getCCore()
	 * @generated
	 */
	EAttribute getCCore_Infinite();

	/**
	 * Returns the meta object for the attribute '{@link ccore.CCore#getProblem <em>Problem</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Problem</em>'.
	 * @see ccore.CCore#getProblem()
	 * @see #getCCore()
	 * @generated
	 */
	EAttribute getCCore_Problem();

	/**
	 * Returns the meta object for the containment reference list '{@link ccore.CCore#getGeneratedConstraints <em>Generated Constraints</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Generated Constraints</em>'.
	 * @see ccore.CCore#getGeneratedConstraints()
	 * @see #getCCore()
	 * @generated
	 */
	EReference getCCore_GeneratedConstraints();

	/**
	 * Returns the meta object for data type '{@link choco.Problem <em>Problem</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for data type '<em>Problem</em>'.
	 * @see choco.Problem
	 * @model instanceClass="choco.Problem"
	 * @generated
	 */
	EDataType getProblem();

	/**
	 * Returns the meta object for the attribute '{@link ccore.CCore#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see ccore.CCore#getName()
	 * @see #getCCore()
	 * @generated
	 */
	EAttribute getCCore_Name();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	CcoreFactory getCcoreFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link ccore.impl.CCoreImpl <em>CCore</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ccore.impl.CCoreImpl
		 * @see ccore.impl.CcorePackageImpl#getCCore()
		 * @generated
		 */
		EClass CCORE = eINSTANCE.getCCore();

		/**
		 * The meta object literal for the '<em><b>CClasses</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CCORE__CCLASSES = eINSTANCE.getCCore_CClasses();

		/**
		 * The meta object literal for the '<em><b>CConstraints</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CCORE__CCONSTRAINTS = eINSTANCE.getCCore_CConstraints();

		/**
		 * The meta object literal for the '<em><b>CObjects</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CCORE__COBJECTS = eINSTANCE.getCCore_CObjects();

		/**
		 * The meta object literal for the '<em><b>Infinite</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute CCORE__INFINITE = eINSTANCE.getCCore_Infinite();

		/**
		 * The meta object literal for the '<em><b>Problem</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute CCORE__PROBLEM = eINSTANCE.getCCore_Problem();

		/**
		 * The meta object literal for the '<em><b>Generated Constraints</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CCORE__GENERATED_CONSTRAINTS = eINSTANCE.getCCore_GeneratedConstraints();

		/**
		 * The meta object literal for the '<em>Problem</em>' data type.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see choco.Problem
		 * @see ccore.impl.CcorePackageImpl#getProblem()
		 * @generated
		 */
		EDataType PROBLEM = eINSTANCE.getProblem();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute CCORE__NAME = eINSTANCE.getCCore_Name();

	}

} //CcorePackage
